home *** CD-ROM | disk | FTP | other *** search
/ Tech Arsenal 1 / Tech Arsenal (Arsenal Computer).ISO / tek-04 / buletq10.zip / BULLET.H < prev    next >
C/C++ Source or Header  |  1992-05-31  |  8KB  |  301 lines

  1. /*      bullet.h
  2.  
  3.         Defines the BULLET library's structs, consts, and function declaration
  4.  
  5.         v1.00 31-May-92
  6.  
  7.     ***********************************************************************
  8.     * NOTE: BULLET is for medium, large, or huge models (do not use tiny, *
  9.     * ---- small, or compact since these allow for only 1 code segment).  *
  10.     ***********************************************************************
  11.  
  12.      Struct types must be standard byte packed; do not special align elements
  13. */
  14.  
  15. int     far pascal BULLET(void far *datapack);
  16.  
  17. #define INITXB          0            /* system */
  18. #define EXITXB          1
  19. #define ATEXITXB        2
  20. #define MEMORYXB        3
  21. #define BREAKXB         4
  22. #define BACKUPFILEXB    5
  23. #define STATHANDLEXB    6
  24. #define GETEXTERRORXB   7
  25. #define DVMONCXB        9
  26.  
  27. #define CREATEDXB       10           /* data control mid-level */
  28. #define OPENDXB         11
  29. #define CLOSEDXB        12
  30. #define STATDXB         13
  31. #define READDHXB        14
  32. #define FLUSHDHXB       15
  33. #define COPYDHXB        16
  34. #define ZAPDHXB         17
  35.  
  36. #define CREATEKXB       20           /* key control mid-level */
  37. #define OPENKXB         21
  38. #define CLOSEKXB        22
  39. #define STATKXB         23
  40. #define READKHXB        24
  41. #define FLUSHKHXB       25
  42. #define COPYKHXB        26
  43. #define ZAPKHXB         27
  44.  
  45. #define GETDESCRIPTORXB 30           /* data access mid-level */
  46. #define GETRECORDXB     31
  47. #define ADDRECORDXB     32
  48. #define UPDATERECORDXB  33
  49. #define DELETERECORDXB  34
  50. #define UNDELETERECORDXB 35
  51. #define PACKRECORDSXB   36
  52.  
  53. #define FIRSTKEYXB      40           /* key access mid-level */
  54. #define EQUALKEYXB      41
  55. #define NEXTKEYXB       42
  56. #define PREVKEYXB       43
  57. #define LASTKEYXB       44
  58. #define STOREKEYXB      45
  59. #define DELETEKEYXB     46
  60. #define BUILDKEYXB      47
  61. #define CURRENTKEYXB    48
  62.  
  63. #define GETFIRSTXB      60           /* key & data access high-level */
  64. #define GETEQUALXB      61
  65. #define GETNEXTXB       62
  66. #define GETPREVXB       63
  67. #define GETLASTXB       64
  68. #define INSERTXB        65
  69. #define UPDATEXB        66
  70. #define REINDEXXB       67
  71.  
  72. #define LOCKXB          80           /* network control */
  73. #define UNLOCKXB        81
  74. #define LOCKKEYXB       82
  75. #define UNLOCKKEYXB     83
  76. #define LOCKDATAXB      84
  77. #define UNLOCKDATAXB    85
  78. #define DRIVEREMOTEXB   86
  79. #define FILEREMOTEXB    87
  80. #define SETRETRIESXB    88
  81.  
  82. #define DELETEFILEDOS   100          /* DOS file I/O low-level */
  83. #define RENAMEFILEDOS   101
  84. #define CREATEFILEDOS   102
  85. #define OPENFILEDOS     103
  86. #define SEEKFILEDOS     104
  87. #define READFILEDOS     105
  88. #define WRITEFILEDOS    106
  89. #define CLOSEFILEDOS    107
  90. #define ACCESSFILEDOS   108
  91. #define EXPANDFILEDOS   109
  92. #define MAKEDIRDOS      110
  93.  
  94. #define cUNIQUE         1            /* key type flags */
  95. #define cCHAR           2
  96. #define cINTEGER        16
  97. #define cLONG           32
  98. #define cNLS            0x4000       /* note: cNLS is set by BULLET */
  99. #define cSIGNED         0x8000
  100.  
  101. #define READONLY        0            /* do NOT use O_RDONLY,O_WRONLY,O_RDWR */
  102. #define WRITEONLY       1
  103. #define READWRITE       2
  104.  
  105. #define COMPAT          0X0000       /* okay to use SH_DENYRW, etc. */
  106. #define DENYREADWRITE   0x0010       /* or O_DENYREADWRITE, etc.    */
  107. #define DENYWRITE       0x0020
  108. #define DENYREAD        0x0030
  109. #define DENYNONE        0x0040
  110. #define NOINHERIT       0x0080
  111.  
  112.  
  113. struct accesspack {
  114.         unsigned        func;
  115.         unsigned        stat;
  116.         unsigned        handle;
  117.         long            recno;       /* signed */
  118.         void       far *recptr;
  119.         void       far *keyptr;
  120.         void       far *nextptr;
  121. }; /* 22 */
  122.  
  123. struct breakpack {
  124.         unsigned        func;
  125.         unsigned        stat;
  126.         unsigned        mode;
  127. }; /* 6 */
  128.  
  129. struct copypack {
  130.         unsigned        func;
  131.         unsigned        stat;
  132.         unsigned        handle;
  133.         char       far *filenameptr;
  134. }; /* 10 */
  135.  
  136. struct createdatapack {
  137.         unsigned        func;
  138.         unsigned        stat;
  139.         char       far *filenameptr;
  140.         unsigned        nofields;
  141.         void       far *fieldlistptr;
  142.         unsigned        fileid;
  143. }; /* 16 */
  144.  
  145. struct createkeypack {
  146.         unsigned        func;
  147.         unsigned        stat;
  148.         char       far *filenameptr;
  149.         char       far *keyexpptr;
  150.         unsigned        xblink;
  151.         unsigned        keyflags;
  152.         int             codepageid;
  153.         int             countrycode;
  154.         char       far *collateptr;
  155. }; /* 24 */
  156.  
  157. struct fielddesctype {
  158.         char            fieldname[11];
  159.         char            fieldtype[1];
  160.         unsigned long   fieldda;
  161.         unsigned char   fieldlen;
  162.         unsigned char   fielddc;
  163.         long            fieldrez;
  164.         char            filler[10];
  165. }; /* 32 */
  166.  
  167. struct descriptorpack {
  168.         unsigned        func;
  169.         unsigned        stat;
  170.         unsigned        handle;
  171.         unsigned        fieldnumber;
  172.         struct fielddesctype   fd;
  173. }; /* 40 */
  174.  
  175. struct dosfilepack {
  176.         unsigned        func;
  177.         unsigned        stat;
  178.         char       far *filenameptr;
  179.         unsigned        handle;
  180.         unsigned        asmode;
  181.         unsigned        bytes;
  182.         long            seekoffset;
  183.         unsigned        method;
  184.         void       far *bufferptr;
  185.         unsigned        attr;
  186.         char       far *newnameptr;
  187. }; /* 30 */
  188.  
  189. struct dvmonpack {
  190.         unsigned        func;
  191.         unsigned        stat;
  192.         unsigned        mode;
  193.         unsigned        handle;
  194.         unsigned        vs;
  195. }; /* 10 */
  196.  
  197. struct exitpack {
  198.         unsigned        func;
  199.         unsigned        stat;
  200. }; /* 4 */
  201.  
  202. struct handlepack {
  203.         unsigned        func;
  204.         unsigned        stat;
  205.         unsigned        handle;
  206. }; /* 6 */
  207.  
  208. struct initpack {
  209.         unsigned        func;
  210.         unsigned        stat;
  211.         unsigned        jftmode;
  212.         unsigned        dosver;
  213.         unsigned        version;
  214.         unsigned long   exitptr;
  215. }; /* 14 */
  216.  
  217. struct memorypack {
  218.         unsigned        func;
  219.         unsigned        stat;
  220.         unsigned long   memory;
  221. };
  222.  
  223. struct openpack {
  224.         unsigned        func;
  225.         unsigned        stat;
  226.         unsigned        handle;
  227.         char       far *filenameptr;
  228.         unsigned        asmode;
  229.         unsigned        xblink;
  230. }; /* 14 */
  231.  
  232. struct remotepack {
  233.         unsigned        func;
  234.         unsigned        stat;
  235.         unsigned        handle;
  236.         unsigned        isremote;
  237.         unsigned        flags;
  238.         unsigned        isshare;
  239. }; /* 12 */
  240.  
  241. struct setretriespack {
  242.         unsigned        func;
  243.         unsigned        stat;
  244.         unsigned        mode;
  245.         unsigned        pause;
  246.         unsigned        retries;
  247. }; /* 10 */
  248.  
  249. struct statdatapack {
  250.         unsigned        func;
  251.         unsigned        stat;
  252.         unsigned        handle;
  253.         unsigned char   filetype;
  254.         unsigned char   dirty;
  255.         unsigned long   recs;
  256.         unsigned        reclen;
  257.         unsigned        fields;
  258.         char            f1;
  259.         unsigned char   luyear;
  260.         unsigned char   lumonth;
  261.         unsigned char   luday;
  262.         unsigned        hereseg;
  263.         char            filler[10];
  264. }; /* 32 */
  265.  
  266. struct statkeypack {
  267.         unsigned        func;
  268.         unsigned        stat;
  269.         unsigned        handle;
  270.         unsigned char   filetype;
  271.         unsigned char   dirty;
  272.         unsigned long   keys;
  273.         unsigned        keylen;
  274.         unsigned        xblink;
  275.         unsigned long   xbrecno;
  276.         unsigned        hereseg;
  277.         unsigned        codepageid;
  278.         unsigned        countrycode;
  279.         unsigned        collatetablesize;
  280.         unsigned        keyflags;
  281.         char            filler[2];
  282. }; /* 32 */
  283.  
  284. struct stathandlepack {
  285.         unsigned        func;
  286.         unsigned        stat;
  287.         unsigned        handle;
  288.         unsigned        id;
  289.         char       far *filenameptr;
  290. }; /* 12 */
  291.  
  292. struct xerrorpack {
  293.         unsigned        func;
  294.         unsigned        stat;
  295.         unsigned        class;
  296.         unsigned        action;
  297.         unsigned        location;
  298. }; /* 10 */
  299.  
  300. /* end of BULLET.H */
  301.